/*************************************************************************
    > File Name: 8dup.c
    > Author: Ykk
    > Mail: 3393579535@qq.com 
    > Created Time: 2023年04月06日 星期四 21时47分39秒
 ************************************************************************/

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>


//dup dup2
int main()
{
	//1.打开文件
	int fd = -1;
	int new_fd = -1;
	fd = open("txt",O_RDWR|O_CREAT,0644);
	if(-1==fd)
	{
		perror("open");
		return 1;
	}
	printf("fd = %d\n",fd);
	//文件描述符复制
	new_fd = dup(fd);
	
	//new_fd = 3;
	//如果文件描述符已经跟某个文件关联了，那么就先解除与该文件的关联，然后将文件描述符与fd关联同一个文件
	new_fd = dup2(fd,new_fd);

	if(-1==new_fd)
	{
		perror("dup");
		return 1;
	}
	printf("new_fd = %d\n",new_fd);

	//2.操作
	write(fd,"ABCDEFG",7);
	write(new_fd,"HIJKLMN",7);

	//3.关闭文件描述符
	close(fd);
	close(new_fd);

	return 0;
}
